package com.zhaorujie.rpc.core.serialize;

/**
 * @author 赵汝杰
 * @version v1.0
 * @description RpcSerialize
 * @date 2024/3/4
 **/
public interface RpcSerialize {

    /**
     * 序列化
     * @param obj 需要序列化的对象
     * @return byte数组
     * @param <T> 对象类型
     */
    public <T> byte[] serialize(T obj);

    /**
     * 反序列化
     * @param bytes 字节数组
     * @param clazz 反序列化的对象
     * @return 反序列化后对象
     * @param <T> 反序列化对象类型
     */
    public <T> Object deserialize(byte[] bytes, Class<T> clazz);
}
